#ifndef MAIN_WIDGET_H
#define MAIN_WIDGET_H

#include <QWidget>
#include <QFile>
#include "App/Business/Business.h"
#include "App/Assemblies/SyntaxHighlighter/LuaSyntaxHighlighter.h"

QT_BEGIN_NAMESPACE namespace Ui
{
    class MainWidget;
}
QT_END_NAMESPACE

class MainWidget final : public QWidget
{
    Q_OBJECT
public:
    explicit MainWidget(QWidget *parent = nullptr);

    ~MainWidget() override;

protected:
    void closeEvent(QCloseEvent *event) override;

private:
    void Init();

    void OnConnect();

private Q_SLOTS:
    // 脚本执行
    void OnExecuteScript();

    // 开始执行
    void OnStartButtonClicked();

    // 停止执行
    void OnStopButtonClicked() const;

    // 清理文本
    void OnClearText() const;

private:
    Ui::MainWidget *ui;
    Business* business_{nullptr};                           // 业务操作类
    QFile* lua_file_{nullptr};                              // 脚本文件
    LuaSyntaxHighlighter *highlighter_{nullptr};            // 脚本高亮
};

#endif //MAIN_WIDGET_H
